光源
光源的种类
- 环境光(AmbientLight)
- 点光源(PointLight)
- 平行光(DirectionalLight)
- 聚光灯(SpotLight)
环境光
介绍:对场景整体光照效果相同的光源。
特点:没有明确的光源位置,各处亮度一致。
1 | /* 创建环境光 |
点光源
介绍:点向周围空间均匀发光的光源。
特点:不计光源的大小;距离越远,光线越散。
1 | /* 创建点光源 |
平行光
介绍:一组没有衰减的平行的光线。
特点:对于任意平行的平面,平行光照射的亮度都是相同的。
1 | /* 创建平行光源 |
聚光灯
介绍:一种可以投影出类似圆锥形阴影的特殊的“点光源”。
特点:同点光源。不计光源的大小;距离越远,光线越散。
1 | /* 创建平行光源 |
阴影
注意:
- 只有“平行光”和“聚光灯”才能形成阴影。
- 只有“Lambert材质”和“Phong材质”的物体才能形成阴影。
使用方法:
设置渲染器渲染阴影
renderer.shadowMapEnabled = true;
光源渲染阴影
light.castShandow = true;
设置显示阴影的物体
mesh.receiveShaow = true;
设置产生光源阴影范围
(1) 对于聚光灯,需要设置shadowCameraNear、shadowCameraFar、shadowCameraFov(这三个参数类似透视投影照相机)。
只有在 shadowCameraNear 和 shadowCameraFar 之间的物体才会产生阴影;
shadowCameraFov表示夹角。
(2) 对于平行光,需要设置shadowCameraNear、shadowCameraFar、shadowCameraLeft、shadowCameraRight、shadowCameraTop、shadowCameraBottom六个值(类似于正交投影照相机的六个面)。
在这六个面围成的范围内的物体,才会产生阴影
(ps:为了使结果更直观,可以在调试时开启light.shadowCameraVisible=true,把光的范围用线表示出来)
其他参数:
shadowDarkness:阴影的深浅,该值的范围是0到1,越小越浅
shadowMapSoft:软阴影